﻿namespace OT.HikiSecureCenterApis.Service.Resources.Req
{
    public class ReqPerson
    {
        /// <summary>
        /// 是否必填：否
        /// 人员临时标志，当调用方未指定personId时，clientId作为人员标志，在返回值中标志每个人员的添加结果。
        /// 所以每次接口调用，每个人员的clientid需保持唯一，1~10个字符，只支持数字。
        /// 注：clientid只对本次调用有效
        /// </summary>
        public int clientId { get; set; }
        /// <summary>
        /// 是否必填：否
        /// 唯一标志，不允许与其他人员personId重复，包括已删除的人员；值为空或者不传此字段时平台自动生成唯一标志
        /// </summary>
        public string personId { get; set; }
        /// <summary>
        /// 是否必填：是
        /// 人员名称，1~32个字符；不能包含 ’ / \ : * ? " < >
        /// </summary>
        public string personName { get; set; }
        /// <summary>
        /// 是否必填：是
        /// 所属组织标识，必须是已存在组织，从获取组织列表接口获取返回参数orgIndexCode
        /// </summary>
        public string orgIndexCode { get; set; }
        /// <summary>
        /// 是否必填：否
        /// 性别 1：男 2：女 0：未知
        /// </summary>
        public string gender { get; set; }
        /// <summary>
        /// 是否必填：否
        /// 出生日期，举例：1992-09-12
        /// </summary>
        public string birthday { get; set; }
        /// <summary>
        /// 是否必填：否
        /// 手机号，1-20位数字,平台上人员信息实名标识选择为手机号码时必填
        /// </summary>
        public string phoneNo { get; set; }
        /// <summary>
        /// 是否必填：否
        /// 邮箱，举例：hic@163.com
        /// </summary>
        public string email { get; set; }
        /// <summary>
        /// 是否必填：否
        /// 证件类型，参考附录A 数据字典，平台上人员信息实名标识选择为身份证件时必填
        /// https://open.hikvision.com/docs/0f6e8e1e41a14304aeecd287530b9c95?curNodeId=0f6e8e1e41a14304aeecd287530b9c95#a0582e39
        /// 111	身份证 414	护照 113	户口簿 335	驾驶证 131	工作证 133	学生证 990	其他
        /// </summary>
        public string certificateType { get; set; }
        /// <summary>
        /// 是否必填：否
        /// 证件号码，1-20位数字字母，平台上人员信息实名标识选择为身份证件时必填
        /// </summary>
        public string certificateNo { get; set; }
        /// <summary>
        /// 是否必填：否
        /// 工号，平台上人员信息实名标识选择为身份证件时必填，1-32个字符
        /// </summary>
        public string jobNo { get; set; }
        /// <summary>
        /// 人员图片信息
        /// </summary>
        public IList<PersonPhoto> personPhoto { get; set; }
    }
    public class PersonPhoto
    {
        /// <summary>
        /// 人脸图片唯一标示
        /// </summary>
        public string personPhotoIndexCode { get; set; }
        /// <summary>
        /// 图片相对url, 通过提取人员图片接口获取图片数据
        /// </summary>
        public string picUri { get; set; }
        /// <summary>
        /// 图片服务器唯一标示 提取人员图片接口必要参数
        /// </summary>
        public string serverIndexCode { get; set; }
        /// <summary>
        /// 人员ID
        /// </summary>
        public string personId { get; set; }
    }
}
